<?php
	require_once PATH_OBJECT.'dataObject.php';
	
class dataObject_conditionIndemnisation extends dataObject
{
 	/* @desc    Identifiant d'une condition d'indémnisation
     * @var     int
     */
    public $_IDENTIFIANT_CDT_INDEMN = 0;
      
/* @desc    code d'une condition d'indémnisation
     * @var     varchar
     */
    public $_CODE_CDT_INDEMN = '';
    
/* @desc    libelle d'une condition d'indémnisation
     * @var     varchar
     */
    public $_LIBELLE_CDT_INDEMN = '';
    
/* @desc    valeur d'une condition d'indémnisation
     * @var     int
     */
    public $_VALEUR_CDT_INDEMN 	= 0;  	 
    
/* @desc    type d'une condition d'indémnisation
     * @var     char
     */
    public $_TYPE_CDT_INDEMN 	= '';
    
/* @desc   date de debut de validité d'une cdt d'indémnisation
     * @var     date
     */
    public $_DATE_DEBUT_CDT_INDEMN 	= '';
    
/* @desc    date de fin de validité d'une condition d'indémnisation
     * @var     date
     */
    public $_DATE_FIN_CDT_INDEMN 	= '';
    
/* @desc    Identifiant de la garantie associée à la condition d'indémnisation
     * @var     int
     */
    public $_IDENTIFIANT_GARANTIE 	= 0;
    
/* @desc    Identifiant de l'offre associée
     * @var     int
     */
    public $_IDENTIFIANT_OFFRE 	= 0;
  
    
    
  public function __construct( $iId=0 )
    {
       parent::__construct();

       if ( $iId != 0 )
       {
            $sQuery = "SELECT   *   /*+ dataObject_conditionIndemnisation::__construct */  
                       FROM conditionindemnisation 
            		   WHERE Identifiant_condition_indemnisation = ".$iId;
            
            $aRows =  self::$_oConnexion->query($sQuery);
	  		$aRow = $aRows[0];
         
            $this->_IDENTIFIANT_CDT_INDEMN 	= $iId;
			$this->_CODE_CDT_INDEMN 		= $aRow['Code_condition_indemnisation'];
			$this->_LIBELLE_CDT_INDEMN 		= $aRow['Libelle_condition_indemnisation'];
			$this->_VALEUR_CDT_INDEMN		= $aRow['Valeur_condition_indemnisation'];
			$this->_TYPE_CDT_INDEMN  		= $aRow['Type_condition_indemnisation'];
			$this->_DATE_DEBUT_CDT_INDEMN	= $aRow['Date_debut_condition_indemnisation'];
			$this->_DATE_FIN_CDT_INDEMN		= $aRow['Date_fin_condition_indemnisation'];
			$this->_IDENTIFIANT_GARANTIE 	= $aRow['Identifiant_garantie'];
			$this->_IDENTIFIANT_OFFRE		= $aRow['Identifiant_offre'];
  		  	 
			
       }
    }
    /**
     * récupere la table conditionIndemnisation selon le(s) critere(s) précisés ou pas 
	 */
    function conditionIndemnisation_select( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT   *    
                   FROM conditionindemnisation 
            	   WHERE 1=1 
            	   {$sCritere}";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
   
   /*
    * @return  int l'id autoincrement généré
	* @return  bool false en cas d'erreur
    */
    public function conditionIndemnisation_insert()
    {
    	$sQuery = "INSERT INTO conditionindemnisation (
    			Code_condition_indemnisation,
				Libelle_condition_indemnisation,
				Valeur_condition_indemnisation,
				Type_condition_indemnisation ,
				Date_debut_condition_indemnisation,
				Date_fin_condition_indemnisation,
				Identifiant_garantie,
				Identifiant_offre
    			) values (
    			".self::$_oConnexion->text($this->_CODE_CDT_INDEMN)
			.",	".self::$_oConnexion->text($this->_LIBELLE_CDT_INDEMN )
			.",	$this->_VALEUR_CDT_INDEMN
			  ,	".self::$_oConnexion->text($this->_TYPE_CDT_INDEMN  )
			.",	".self::$_oConnexion->text($this->_DATE_DEBUT_CDT_INDEMN)
			.",	".self::$_oConnexion->text($this->_DATE_FIN_CDT_INDEMN)
			.",	$this->_IDENTIFIANT_GARANTIE 
			  , $this->_IDENTIFIANT_OFFRE
    			)";
    	
    	return self::$_oConnexion->execute($sQuery);
    }
    
    //Mamy
    function get_condIdemnOffreProdContrat($idContrat, $dDateEffet)
    {
        $aRow = false;
        $sReq ="SELECT  cdtind.Type_condition_indemnisation,
    					garsous.Identifiant_contrat,
    					p.Identifiant_produit, p.Code_produit, p.Libelle_produit,
    				 	o.Identifiant_offre, o.Code_offre, o.Libelle_offre
    			FROM  	
    				garantiesouscrite garsous , garantie gar, 
    				produit p, offre o, conditionindemnisation cdtind
    			WHERE 	
    				garsous.Identifiant_contrat = '".$idContrat."' AND 
    				garsous.Identifiant_garantie = gar.Identifiant_garantie AND 
    				gar.Identifiant_produit = p.Identifiant_produit AND 
    				p.Identifiant_offre = o.Identifiant_offre AND
    				cdtind.Identifiant_offre = o.Identifiant_offre AND 
    				cdtind.Type_condition_indemnisation = 'L' 
    				AND ( cdtind.Date_fin_condition_indemnisation >= ".$dDateEffet." OR cdtind.Date_fin_condition_indemnisation is NULL)
    				";
        $aRow =  self::$_oConnexion->query($sReq);
    
    
    
    }
    
	function get_CdtIndemnTypeLimiteContrat($idContrat, $sDateEffet)
    {

        $aRow = false;
        $sReq ="SELECT distinct Identifiant_condition_indemnisation, Code_condition_indemnisation, 
        			Libelle_condition_indemnisation, Valeur_condition_indemnisation, Type_condition_indemnisation,
    					garsous.Identifiant_contrat,
    					p.Identifiant_produit, p.Code_produit, p.Libelle_produit,
    				 	o.Identifiant_offre, o.Code_offre, o.Libelle_offre
    			FROM  	
    				garantiesouscrite garsous , garantie gar, 
    				produit p, offre o, conditionindemnisation cdti
    			WHERE garsous.Identifiant_contrat = ".$idContrat." 
    				AND garsous.Identifiant_garantie = gar.Identifiant_garantie 
    				AND gar.Identifiant_produit = p.Identifiant_produit 
    				AND p.Identifiant_offre = o.Identifiant_offre 
    				AND ( cdti.Identifiant_offre = o.Identifiant_offre or 
    				      cdti.Identifiant_garantie = garsous.Identifiant_garantie )
    				AND cdti.Type_condition_indemnisation = 'L' 
    				AND ( cdti.Date_fin_condition_indemnisation >= ".self::$_oConnexion->date($sDateEffet)." OR cdti.Date_fin_condition_indemnisation is NULL)
    				";
     //AND cdti.Date_debut_condition_indemnisation <= ".self::$_oConnexion->date($sDateEffet)."
        $aRow =  self::$_oConnexion->query($sReq);

        return $aRow;
    }
    
function get_CdtIndemnTypeDelaiContrat($idContrat, $sDateEffet)
    {

        $aRow = false;
        $sReq ="SELECT distinct Identifiant_condition_indemnisation, Code_condition_indemnisation, 
        			Libelle_condition_indemnisation, Valeur_condition_indemnisation, Type_condition_indemnisation,
    					garsous.Identifiant_contrat,
    					p.Identifiant_produit, p.Code_produit, p.Libelle_produit,
    				 	o.Identifiant_offre, o.Code_offre, o.Libelle_offre
    			FROM  	
    				garantiesouscrite garsous , garantie gar, 
    				produit p, offre o, conditionindemnisation cdti
    			WHERE garsous.Identifiant_contrat = ".$idContrat." 
    				AND garsous.Identifiant_garantie = gar.Identifiant_garantie 
    				AND gar.Identifiant_produit = p.Identifiant_produit 
    				AND p.Identifiant_offre = o.Identifiant_offre 
    				AND ( cdti.Identifiant_offre = o.Identifiant_offre or 
    				      cdti.Identifiant_garantie = garsous.Identifiant_garantie )
    				AND cdti.Type_condition_indemnisation = 'D' 
    				AND ( cdti.Date_fin_condition_indemnisation >= ".self::$_oConnexion->date($sDateEffet)." OR cdti.Date_fin_condition_indemnisation is NULL)
    				";
     //AND cdti.Date_debut_condition_indemnisation <= ".self::$_oConnexion->date($sDateEffet)."
        $aRow =  self::$_oConnexion->query($sReq);

        return $aRow;
    }
    
    /*
     * 14 –fournir les conditions d’indemnisation de type « exclusion » applicables
     * à la date d’effet du contrat de l’offre souscrite et des garanties souscrites
     */
    
function get_CdtIndemnTypeExclusionContrat($idContrat, $sDateEffet)
    {

        $aRow = false;
        $sReq ="SELECT distinct Identifiant_condition_indemnisation, Code_condition_indemnisation, 
        			Libelle_condition_indemnisation, Valeur_condition_indemnisation, Type_condition_indemnisation,
    					garsous.Identifiant_contrat,
    					p.Identifiant_produit, p.Code_produit, p.Libelle_produit,
    				 	o.Identifiant_offre, o.Code_offre, o.Libelle_offre
    			FROM  	
    				garantiesouscrite garsous , garantie gar, 
    				produit p, offre o, conditionindemnisation cdti
    			WHERE garsous.Identifiant_contrat = ".$idContrat." 
    				AND garsous.Identifiant_garantie = gar.Identifiant_garantie 
    				AND gar.Identifiant_produit = p.Identifiant_produit 
    				AND p.Identifiant_offre = o.Identifiant_offre 
    				AND ( cdti.Identifiant_offre = o.Identifiant_offre or 
    				      cdti.Identifiant_garantie = garsous.Identifiant_garantie )
    				AND cdti.Type_condition_indemnisation = 'E' 
    				AND ( cdti.Date_fin_condition_indemnisation >= ".self::$_oConnexion->date($sDateEffet)." OR cdti.Date_fin_condition_indemnisation is NULL)
    				";
     //AND cdti.Date_debut_condition_indemnisation <= ".self::$_oConnexion->date($sDateEffet)."
        $aRow =  self::$_oConnexion->query($sReq);

        return $aRow;
    }
    
    
    
    
    
    
    
    
    /*
    * @return  int le nombre de ligne affecté si écriture
	* @return  bool false en cas d'erreur
    */
    public function conditionIndemnisation_update()
    {
    	$sQuery = "UPDATE conditionIndemnisation SET 
    			Code_condition_indemnisation = ".self::$_oConnexion->text($this->_CODE_CDT_INDEMN).",
				Libelle_condition_indemnisation =".self::$_oConnexion->text($this->_LIBELLE_CDT_INDEMN).",
				Valeur_condition_indemnisation = $this->_VALEUR_CDT_INDEMN,
				Type_condition_indemnisation  =".self::$_oConnexion->text($this->_TYPE_CDT_INDEMN).",
				Date_debut_condition_indemnisation =".self::$_oConnexion->date($this->_DATE_DEBUT_CDT_INDEMN).",
				Date_fin_condition_indemnisation =".self::$_oConnexion->date($this->_DATE_FIN_CDT_INDEMN).",
				Identifiant_garantie = $this->_IDENTIFIANT_GARANTIE ,
				Identifiant_offre=$this->_IDENTIFIANT_OFFRE
	    		WHERE Identifiant_condition_indemnisation 	= ".$this->_IDENTIFIANT_CDT_INDEMN ;

        return self::$_oConnexion->execute($sQuery);
    }
}
?>